🎖️GitЯра🎖️
Node / meshtastic / Meshtastic-Android / files / app / src / androidTest / java / com / geeksville / mesh / PacketDaoTest.kt
Displaying Raw • Download
app/src/androidTest/java/com/geeksville/mesh/PacketDaoTest.kt ui_message_list (be3f882f) Text, 5.71 KB
T8b949e/*
* Copyright (c) 2025 Meshtastic LLC
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
Tff7b72package T7ee787com.geeksville.mesh
Tff7b72import T7ee787androidx.room.Room
Tff7b72import T7ee787androidx.test.ext.junit.runners.AndroidJUnit4
Tff7b72import T7ee787androidx.test.platform.app.InstrumentationRegistry
Tff7b72import T7ee787com.geeksville.mesh.database.MeshtasticDatabase
Tff7b72import T7ee787com.geeksville.mesh.database.dao.NodeInfoDao
Tff7b72import T7ee787com.geeksville.mesh.database.dao.PacketDao
Tff7b72import T7ee787com.geeksville.mesh.database.entity.MyNodeEntity
Tff7b72import T7ee787com.geeksville.mesh.database.entity.Packet
Tff7b72import T7ee787kotlinx.coroutines.flow.first
Tff7b72import T7ee787kotlinx.coroutines.runBlocking
Tff7b72import T7ee787org.junit.After
Tff7b72import T7ee787org.junit.Assert.assertEquals
Tff7b72import T7ee787org.junit.Assert.assertTrue
Tff7b72import T7ee787org.junit.Before
Tff7b72import T7ee787org.junit.Test
Tff7b72import T7ee787org.junit.runner.RunWith
Tf0883e@RunWithTb4b4b4(Te6edf3AndroidJUnit4Tff7b72::Te6edf3classTb4b4b4)
Tff7b72class T56d364PacketDaoTest Tb4b4b4{
Tff7b72private Tff7b72lateinit Tff7b72var Te6edf3databaseTb4b4b4: Te6edf3MeshtasticDatabase
Tff7b72private Tff7b72lateinit Tff7b72var Te6edf3nodeInfoDaoTb4b4b4: Te6edf3NodeInfoDao
Tff7b72private Tff7b72lateinit Tff7b72var Te6edf3packetDaoTb4b4b4: Te6edf3PacketDao
Tff7b72private Tff7b72val Te6edf3myNodeInfoTb4b4b4: Te6edf3MyNodeEntity Tff7b72= Te6edf3MyNodeEntityTb4b4b4(
Te6edf3myNodeNum Tff7b72= T79c0ff4T79c0ff2T79c0ff4T79c0ff2T79c0ff4T79c0ff2T79c0ff4T79c0ff2Tb4b4b4,
Te6edf3model Tff7b72= Tff7b72nullTb4b4b4,
Te6edf3firmwareVersion Tff7b72= Tff7b72nullTb4b4b4,
Te6edf3couldUpdate Tff7b72= Tff7b72falseTb4b4b4,
Te6edf3shouldUpdate Tff7b72= Tff7b72falseTb4b4b4,
Te6edf3currentPacketId Tff7b72= T79c0ff1LTb4b4b4,
Te6edf3messageTimeoutMsec Tff7b72= T79c0ff5 Tff7b72* T79c0ff6T79c0ff0 Tff7b72* T79c0ff1T79c0ff0T79c0ff0T79c0ff0Tb4b4b4,
Te6edf3minAppVersion Tff7b72= T79c0ff1Tb4b4b4,
Te6edf3maxChannels Tff7b72= T79c0ff8Tb4b4b4,
Te6edf3hasWifi Tff7b72= Tff7b72falseTb4b4b4,
Tb4b4b4)
Tff7b72private Tff7b72val Te6edf3myNodeNumTb4b4b4: Tffa657Int Tff7b72getTb4b4b4(Tb4b4b4) Tff7b72= Te6edf3myNodeInfoTb4b4b4.Te6edf3myNodeNum
Tff7b72private Tff7b72val Te6edf3testContactKeys Tff7b72= Te6edf3listOfTb4b4b4(
Ta5d6ff"Ta5d6ff0Tffd700${Te6edf3DataPacketTb4b4b4.Te6edf3ID_BROADCASTTffd700}Ta5d6ff"Tb4b4b4,
Ta5d6ff"Ta5d6ff1!test1234Ta5d6ff"Tb4b4b4,
Tb4b4b4)
Tff7b72private Tff7b72fun Td2a8ffgenerateTestPacketsTb4b4b4(Te6edf3myNodeNumTb4b4b4: Tffa657IntTb4b4b4) Tff7b72= Te6edf3testContactKeysTb4b4b4.Te6edf3flatMap Tb4b4b4{ Te6edf3contactKey Tff7b72-Tff7b72>
Te6edf3ListTb4b4b4(Te6edf3SAMPLE_SIZETb4b4b4) Tb4b4b4{
Te6edf3PacketTb4b4b4(
Te6edf3uuid Tff7b72= T79c0ff0LTb4b4b4,
Te6edf3myNodeNum Tff7b72= Te6edf3myNodeNumTb4b4b4,
Te6edf3port_num Tff7b72= Te6edf3PortnumsTb4b4b4.Te6edf3PortNumTb4b4b4.Te6edf3TEXT_MESSAGE_APP_VALUETb4b4b4,
Te6edf3contact_key Tff7b72= Te6edf3contactKeyTb4b4b4,
Te6edf3received_time Tff7b72= Te6edf3SystemTb4b4b4.Te6edf3currentTimeMillisTb4b4b4(Tb4b4b4)Tb4b4b4,
Te6edf3read Tff7b72= Tff7b72falseTb4b4b4,
Te6edf3DataPacketTb4b4b4(Te6edf3DataPacketTb4b4b4.Te6edf3ID_BROADCASTTb4b4b4, T79c0ff0Tb4b4b4, Ta5d6ff"Ta5d6ffMessage Tffd700$Te6edf3itTa5d6ff!Ta5d6ff"Tb4b4b4)Tb4b4b4,
Tb4b4b4)
Tb4b4b4}
Tb4b4b4}
Tf0883e@Before
Tff7b72fun Td2a8ffcreateDbTb4b4b4(Tb4b4b4)Tb4b4b4: Tffa657Unit Tff7b72= Te6edf3runBlocking Tb4b4b4{
Tff7b72val Te6edf3context Tff7b72= Te6edf3InstrumentationRegistryTb4b4b4.Te6edf3getInstrumentationTb4b4b4(Tb4b4b4)Tb4b4b4.Te6edf3targetContext
Te6edf3database Tff7b72= Te6edf3RoomTb4b4b4.Te6edf3inMemoryDatabaseBuilderTb4b4b4(Te6edf3contextTb4b4b4, Te6edf3MeshtasticDatabaseTff7b72::Te6edf3classTb4b4b4.Te6edf3javaTb4b4b4)Tb4b4b4.Te6edf3buildTb4b4b4(Tb4b4b4)
Te6edf3nodeInfoDao Tff7b72= Te6edf3databaseTb4b4b4.Te6edf3nodeInfoDaoTb4b4b4(Tb4b4b4)Tb4b4b4.Te6edf3apply Tb4b4b4{
Te6edf3setMyNodeInfoTb4b4b4(Te6edf3myNodeInfoTb4b4b4)
Tb4b4b4}
Te6edf3packetDao Tff7b72= Te6edf3databaseTb4b4b4.Te6edf3packetDaoTb4b4b4(Tb4b4b4)Tb4b4b4.Te6edf3apply Tb4b4b4{
Te6edf3generateTestPacketsTb4b4b4(T79c0ff4T79c0ff2T79c0ff4T79c0ff2T79c0ff4T79c0ff2T79c0ff4T79c0ff3Tb4b4b4)Tb4b4b4.Te6edf3forEach Tb4b4b4{ Te6edf3insertTb4b4b4(Tffa657itTb4b4b4) Tb4b4b4}
Te6edf3generateTestPacketsTb4b4b4(Te6edf3myNodeNumTb4b4b4)Tb4b4b4.Te6edf3forEach Tb4b4b4{ Te6edf3insertTb4b4b4(Tffa657itTb4b4b4) Tb4b4b4}
Tb4b4b4}
Tb4b4b4}
Tf0883e@After
Tff7b72fun Td2a8ffcloseDbTb4b4b4(Tb4b4b4) Tb4b4b4{
Te6edf3databaseTb4b4b4.Te6edf3closeTb4b4b4(Tb4b4b4)
Tb4b4b4}
Tf0883e@Test
Tff7b72fun Td2a8fftest_myNodeNumTb4b4b4(Tb4b4b4) Tff7b72= Te6edf3runBlocking Tb4b4b4{
Tff7b72val Te6edf3myNodeInfo Tff7b72= Te6edf3nodeInfoDaoTb4b4b4.Te6edf3getMyNodeInfoTb4b4b4(Tb4b4b4)Tb4b4b4.Te6edf3firstTb4b4b4(Tb4b4b4)
Te6edf3assertEqualsTb4b4b4(Te6edf3myNodeNumTb4b4b4, Te6edf3myNodeInfoTff7b72?.Te6edf3myNodeNumTb4b4b4)
Tb4b4b4}
Tf0883e@Test
Tff7b72fun Td2a8fftest_getAllPacketsTb4b4b4(Tb4b4b4) Tff7b72= Te6edf3runBlocking Tb4b4b4{
Tff7b72val Te6edf3packets Tff7b72= Te6edf3packetDaoTb4b4b4.Te6edf3getAllPacketsTb4b4b4(Te6edf3PortnumsTb4b4b4.Te6edf3PortNumTb4b4b4.Te6edf3TEXT_MESSAGE_APP_VALUETb4b4b4)Tb4b4b4.Te6edf3firstTb4b4b4(Tb4b4b4)
Te6edf3assertEqualsTb4b4b4(Te6edf3testContactKeysTb4b4b4.Te6edf3size Tff7b72* Te6edf3SAMPLE_SIZETb4b4b4, Te6edf3packetsTb4b4b4.Te6edf3sizeTb4b4b4)
Tff7b72val Te6edf3onlyMyNodeNum Tff7b72= Te6edf3packetsTb4b4b4.Te6edf3all Tb4b4b4{ Tffa657itTb4b4b4.Te6edf3myNodeNum Tff7b72=Tff7b72= Te6edf3myNodeNum Tb4b4b4}
Te6edf3assertTrueTb4b4b4(Te6edf3onlyMyNodeNumTb4b4b4)
Tb4b4b4}
Tf0883e@Test
Tff7b72fun Td2a8fftest_getContactKeysTb4b4b4(Tb4b4b4) Tff7b72= Te6edf3runBlocking Tb4b4b4{
Tff7b72val Te6edf3contactKeys Tff7b72= Te6edf3packetDaoTb4b4b4.Te6edf3getContactKeysTb4b4b4(Tb4b4b4)Tb4b4b4.Te6edf3firstTb4b4b4(Tb4b4b4)
Te6edf3assertEqualsTb4b4b4(Te6edf3testContactKeysTb4b4b4.Te6edf3sizeTb4b4b4, Te6edf3contactKeysTb4b4b4.Te6edf3sizeTb4b4b4)
Tff7b72val Te6edf3onlyMyNodeNum Tff7b72= Te6edf3contactKeysTb4b4b4.Te6edf3valuesTb4b4b4.Te6edf3all Tb4b4b4{ Tffa657itTb4b4b4.Te6edf3myNodeNum Tff7b72=Tff7b72= Te6edf3myNodeNum Tb4b4b4}
Te6edf3assertTrueTb4b4b4(Te6edf3onlyMyNodeNumTb4b4b4)
Tb4b4b4}
Tf0883e@Test
Tff7b72fun Td2a8fftest_getMessageCountTb4b4b4(Tb4b4b4) Tff7b72= Te6edf3runBlocking Tb4b4b4{
Te6edf3testContactKeysTb4b4b4.Te6edf3forEach Tb4b4b4{ Te6edf3contactKey Tff7b72-Tff7b72>
Tff7b72val Te6edf3messageCount Tff7b72= Te6edf3packetDaoTb4b4b4.Te6edf3getMessageCountTb4b4b4(Te6edf3contactKeyTb4b4b4)
Te6edf3assertEqualsTb4b4b4(Te6edf3SAMPLE_SIZETb4b4b4, Te6edf3messageCountTb4b4b4)
Tb4b4b4}
Tb4b4b4}
Tf0883e@Test
Tff7b72fun Td2a8fftest_getMessagesFromTb4b4b4(Tb4b4b4) Tff7b72= Te6edf3runBlocking Tb4b4b4{
Te6edf3testContactKeysTb4b4b4.Te6edf3forEach Tb4b4b4{ Te6edf3contactKey Tff7b72-Tff7b72>
Tff7b72val Te6edf3messages Tff7b72= Te6edf3packetDaoTb4b4b4.Te6edf3getMessagesFromTb4b4b4(Te6edf3contactKeyTb4b4b4)Tb4b4b4.Te6edf3firstTb4b4b4(Tb4b4b4)
Te6edf3assertEqualsTb4b4b4(Te6edf3SAMPLE_SIZETb4b4b4, Te6edf3messagesTb4b4b4.Te6edf3sizeTb4b4b4)
Tff7b72val Te6edf3onlyFromContactKey Tff7b72= Te6edf3messagesTb4b4b4.Te6edf3all Tb4b4b4{ Tffa657itTb4b4b4.Te6edf3packetTb4b4b4.Te6edf3contact_key Tff7b72=Tff7b72= Te6edf3contactKey Tb4b4b4}
Te6edf3assertTrueTb4b4b4(Te6edf3onlyFromContactKeyTb4b4b4)
Tff7b72val Te6edf3onlyMyNodeNum Tff7b72= Te6edf3messagesTb4b4b4.Te6edf3all Tb4b4b4{ Tffa657itTb4b4b4.Te6edf3packetTb4b4b4.Te6edf3myNodeNum Tff7b72=Tff7b72= Te6edf3myNodeNum Tb4b4b4}
Te6edf3assertTrueTb4b4b4(Te6edf3onlyMyNodeNumTb4b4b4)
Tb4b4b4}
Tb4b4b4}
Tf0883e@Test
Tff7b72fun Td2a8fftest_getUnreadCountTb4b4b4(Tb4b4b4) Tff7b72= Te6edf3runBlocking Tb4b4b4{
Te6edf3testContactKeysTb4b4b4.Te6edf3forEach Tb4b4b4{ Te6edf3contactKey Tff7b72-Tff7b72>
Tff7b72val Te6edf3unreadCount Tff7b72= Te6edf3packetDaoTb4b4b4.Te6edf3getUnreadCountTb4b4b4(Te6edf3contactKeyTb4b4b4)
Te6edf3assertEqualsTb4b4b4(Te6edf3SAMPLE_SIZETb4b4b4, Te6edf3unreadCountTb4b4b4)
Tb4b4b4}
Tb4b4b4}
Tf0883e@Test
Tff7b72fun Td2a8fftest_clearUnreadCountTb4b4b4(Tb4b4b4) Tff7b72= Te6edf3runBlocking Tb4b4b4{
Tff7b72val Te6edf3timestamp Tff7b72= Te6edf3SystemTb4b4b4.Te6edf3currentTimeMillisTb4b4b4(Tb4b4b4)
Te6edf3testContactKeysTb4b4b4.Te6edf3forEach Tb4b4b4{ Te6edf3contactKey Tff7b72-Tff7b72>
Te6edf3packetDaoTb4b4b4.Te6edf3clearUnreadCountTb4b4b4(Te6edf3contactKeyTb4b4b4, Te6edf3timestampTb4b4b4)
Tff7b72val Te6edf3unreadCount Tff7b72= Te6edf3packetDaoTb4b4b4.Te6edf3getUnreadCountTb4b4b4(Te6edf3contactKeyTb4b4b4)
Te6edf3assertEqualsTb4b4b4(T79c0ff0Tb4b4b4, Te6edf3unreadCountTb4b4b4)
Tb4b4b4}
Tb4b4b4}
Tf0883e@Test
Tff7b72fun Td2a8fftest_deleteContactsTb4b4b4(Tb4b4b4) Tff7b72= Te6edf3runBlocking Tb4b4b4{
Te6edf3packetDaoTb4b4b4.Te6edf3deleteContactsTb4b4b4(Te6edf3testContactKeysTb4b4b4)
Te6edf3testContactKeysTb4b4b4.Te6edf3forEach Tb4b4b4{ Te6edf3contactKey Tff7b72-Tff7b72>
Tff7b72val Te6edf3messages Tff7b72= Te6edf3packetDaoTb4b4b4.Te6edf3getMessagesFromTb4b4b4(Te6edf3contactKeyTb4b4b4)Tb4b4b4.Te6edf3firstTb4b4b4(Tb4b4b4)
Te6edf3assertTrueTb4b4b4(Te6edf3messagesTb4b4b4.Te6edf3isEmptyTb4b4b4(Tb4b4b4)Tb4b4b4)
Tb4b4b4}
Tb4b4b4}
Tff7b72companion Tff7b72object Tb4b4b4{
Tff7b72private Tff7b72const Tff7b72val Te6edf3SAMPLE_SIZE Tff7b72= T79c0ff1T79c0ff0
Tb4b4b4}
Tb4b4b4}
Served by rngit 1.5.0 - Generated in 0.08s